/***************************************************************************
 创建者: 华磊
 开始时间: 2018.12.13
 copyright: (C) 华友高科
 修改说明: (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 example (1) 李文友 2017.5.8 类的具体实现代码编写

 ***************************************************************************
 *  @file x.h
 *  功能:
 *
 *                                                                         *
 ***************************************************************************/
#ifndef LASERDRIVERBEIYANG_H
#define LASERDRIVERBEIYANG_H
#include "laserdriverabstract.h"
#include <string>
#include <ros/ros.h>
#include "globalDefine.h"
#include <qdebug.h>

namespace urg_node {
class UrgNode;
}
class LaserDriverBeiyang : public LaserDriverAbstract
{
public:
    LaserDriverBeiyang(LaserDriverConfig configIn);
    ~LaserDriverBeiyang();
public:
    int initialDriver(LaserDriverConfig configIn);
    int publishLaserDataLoopOnce();
    int shutDownDriver();
    bool isDriverStatusOk();

private:
    void* threadRun(void *);
    static void* threadTask( void* classPtr );
    void createThread();
private:
    urg_node::UrgNode* laserDriver;
    bool isShutDown;
    pthread_t threadId;
};

#endif // LASERDRIVERBEIYANG_H
